package com.common.util;

import java.util.ArrayList;
import java.util.List;

public class SetCache {

	private final String SET_VALUES;
	
	private MemoryCache<String, List<String>> setCache;
	
	public SetCache(String values) {
		SET_VALUES = values;
		setCache = new MemoryCache<String, List<String>>();
		List<String> list = setCache.get(SET_VALUES);
		
		if (list == null) {
			list = new ArrayList<String>();
			setCache.put(SET_VALUES, list);
		}
	}
	
	public List<String> getValues() {
		List<String> values = setCache.get(SET_VALUES);
		if (values == null) {
			values = new ArrayList<String>();
			setCache.put(SET_VALUES, values);
		}
		
		return values;
	}
	
	public void add(String value) {
		List<String> list = setCache.get(SET_VALUES);
		list.add(value);
		setCache.put(SET_VALUES, list);
	}
	
	public void remove(String value) {
		List<String> list = setCache.get(SET_VALUES);
		list.remove(value);
		setCache.put(SET_VALUES, list);
	}
}
